The Viterbi algorithm is widely used in different signal processing systems, such as those pertaining to communication or storage, to decode data transmitted over noisy channels and to correct bit errors.
In VDSL2 systems, Trellis-Code Modulation (TCM) becomes a mandatory function that has to be supported by the transmitter and receiver. Trellis-code is basically a systematic convolutional encoder. On the transmitter side, for every two sub-carriers, one bit is extracted from the Wei's 16-state 4-dimensional encoder and integrated into the raw bits to form the coded bits and corresponding constellation for each sub-carrier. On the receiver side, the Viterbi decoder is used to extract the raw bits out based on the minimum metrics cost computation for a particular survival path. Compared with the trellis encoder, the Viterbi decoder on the receiver is a much harder design and consumes much more gate counts. So, the Viterbi decoder is a very important design element in the overall VDSL2 system design.